Change ISA_IO_BASE to fix_to_virt(FIX_ISAMAP_BEGIN). It used to be
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Wed, 16 Nov 2005 10:39:38 +0000 (11:39 +0100)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Wed, 16 Nov 2005 10:39:38 +0000 (11:39 +0100)
PAGE_OFFSET, which was unaltered from vanilla Linux 2.6.12.6 kernels
and caused isa_memcpy_fromio() to not read physical memory from
0xf0000 - 0xfffff correctly.

http://bugzilla.xensource.com/bugzilla/show_bug.cgi?id=393

Signed-off-by: Andrew D. Ball <aball@us.ibm.com>
linux-2.6-xen-sparse/include/asm-xen/asm-i386/io.h
linux-2.6-xen-sparse/include/asm-xen/asm-x86_64/io.h

index f3e03cd0a9ea5a8dd4ec44cb405a629a28d76d5e..afb146d56126d81eead77a32df91f8cff8f8472b 100644 (file)
@@ -228,7 +228,7 @@ static inline void memcpy_toio(volatile void __iomem *dst, const void *src, int
  * used as the IO-area pointer (it can be iounmapped as well, so the
  * analogy with PCI is quite large):
  */
-#define __ISA_IO_base ((char __iomem *)(PAGE_OFFSET))
+#define __ISA_IO_base ((char __iomem *)(fix_to_virt(FIX_ISAMAP_BEGIN)))
 
 #define isa_readb(a) readb(__ISA_IO_base + (a))
 #define isa_readw(a) readw(__ISA_IO_base + (a))
index 3b729ec0d712219e566d2e7ad18b0e1a77fac939..f861c89564ab4e35563d8a45125df6c66d30d579 100644 (file)
@@ -298,7 +298,7 @@ void memset_io(volatile void __iomem *a, int b, size_t c);
  * used as the IO-area pointer (it can be iounmapped as well, so the
  * analogy with PCI is quite large):
  */
-#define __ISA_IO_base ((char __iomem *)(PAGE_OFFSET))
+#define __ISA_IO_base ((char __iomem *)(fix_to_virt(FIX_ISAMAP_BEGIN)))
 
 #define isa_readb(a) readb(__ISA_IO_base + (a))
 #define isa_readw(a) readw(__ISA_IO_base + (a))